/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gerenciadorescola.controller.pattern.command;

import gerenciadorescola.model.Escola;
import gerenciadorescola.model.Turma;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;

/**
 *
 * @author Pedro Freitas
 */
public class ComandoInicializaEscola implements Command {

    public Map<String, Boolean> execute(Map<String, String> entrada) {
        Boolean escolaStatus, turmasStatus = false;

        escolaStatus = InicializaEscola();
        turmasStatus = InicializaTurmas();

        Map status = new HashMap();
        status.put("escola", escolaStatus);
        status.put("turmas", turmasStatus);

        return status;
    }

    public Boolean InicializaEscola() {
        Escola escola = null;
        try {
            escola = Escola.getInstance();
            FileOutputStream out;
            out = new FileOutputStream("escola.dat", false);
            ObjectOutputStream o = new ObjectOutputStream(out);
            o.writeObject(escola);
            o.flush();
            o.close();
        } catch (Exception ee) {
            System.out.println("Exceção ao inicilaizar Escola!");
            return false;
        }
        return true;
    }

    public Boolean InicializaTurmas() {
        try {
            FileOutputStream out;
            out = new FileOutputStream("turmas.dat", false);
            ObjectOutputStream o = new ObjectOutputStream(out);
            Map<Integer, Turma> turmas = new HashMap();
            o.writeObject(turmas);
            o.flush();
            o.close();
        } catch (Exception ee) {
            System.out.println("Exceção ao inicilaizar Turmas!");
            return false;
        }

        return true;
    }
}
